home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 May
/
EnigmA AMIGA RUN 07 (1996)(G.R. Edizioni)(IT)[!][issue 1996-05][EARSAN CD VI].iso
/
progs
/
utilmisc
/
frontpub
/
frontpub_c
/
nbcrt0.s
< prev
Wrap
Text File
|
1995-03-27
|
1KB
|
80 lines
| stripped baserelative startup code for gcc v2.3.3
| (c) by M.Fleischer and G.Nikl Wed Apr 13 17:45 1994
| some specific defines
_LVOForbid = -132
_LVOFindTask = -294
_LVOGetMsg = -372
_LVOReplyMsg = -378
_LVOWaitPort = -384
pr_MsgPort = 92
pr_CLI = 172
RETURN_FAIL = 20
.text
| public symbols
.globl __exit
| first entry - init some vars, check for cli or wb start
start: moveml d2/a2/a6,sp@-
lea ___a4_init,a4
movew #___bss_size,d1
beqs nobss
lea a4@(__edata:W),a1
clrbss: clrl a1@+
subqw #4,d1
bnes clrbss
nobss: movel sp,a4@(___SaveSP:W)
movel 4:W,a6
movel a6,a4@(_SysBase:W)
subal a1,a1
jsr a6@(_LVOFindTask:W)
movel d0,a2
tstl a2@(pr_CLI:W)
bnes fromCLI
| wb start - get wbmsg
fromWB: lea a2@(pr_MsgPort:W),a0
jsr a6@(_LVOWaitPort:W)
lea a2@(pr_MsgPort:W),a0
jsr a6@(_LVOGetMsg:W)
movel d0,a4@(__WBenchMsg:W)
| call _main - push args onto stack
fromCLI: jbsr __main
| exit() entry - close libs, reply wbmsg
__exit: movel a4@(_SysBase:W),a6
movel a4@(__WBenchMsg:W),d2
beqs todos
jsr a6@(_LVOForbid:W)
movel d2,a1
jsr a6@(_LVOReplyMsg:W)
todos: moveq #0,d0
movel a4@(___SaveSP:W),sp
moveml sp@+,d2/a2/a6
rts
| data area
.data
.comm _SysBase,4
.comm ___SaveSP,4
.comm __WBenchMsg,4